namespace EternitySolver.Core
{
    public class TileOrientation
    {
        private readonly int _top;
        private readonly int _right;
        private readonly int _bottom;
        private readonly int _left;
        private readonly Tile _tile;

        public Tile Tile { get { return _tile; } }
        public int Top { get { return _top; } }
        public int Right { get { return _right; } }
        public int Bottom { get { return _bottom; } }
        public int Left { get { return _left; } }

        public TileOrientation(Tile tile, int top, int right, int bottom, int left)
        {
            _tile = tile;
            _top = top;
            _right = right;
            _bottom = bottom;
            _left = left;
        }

        public bool Matches(TileOrientation comparison)
        {
            if (_top != comparison.Top) return false;
            if (_left != comparison.Left) return false;
            if (_bottom != comparison.Bottom) return false;
            if (_right != comparison.Right) return false;
            return true;
        }
    }
}